In moving picture coding processes, an information amount is typically compressed using redundancy of moving pictures in spatial and temporal directions. Here, transformation into a frequency domain is typically used as a compression method using redundancy in the spatial direction. Furthermore, inter-picture prediction (hereinafter referred to as “inter prediction”) is used as a compression method using redundancy in the temporal direction. In coding a certain picture, a coded picture preceding or following the current picture to be coded in display time order is used as a reference picture in the inter prediction coding. Then, a motion vector is derived from motion estimation of the current picture with reference to the reference picture. The redundancy in the temporal direction is removed by obtaining a difference between predicted image data obtained through motion compensation based on the motion vector and image data of the current picture. Here, in the motion estimation, a difference value between the current block to be coded within the current picture and each of blocks in the reference picture is calculated, and the block in the reference picture having the smallest difference value is determined to be a reference block. Then, the motion vector is estimated using the current block and the reference block.
The moving picture coding scheme called H.264 which has already been standardized uses three types of pictures, that is, I-picture, P-picture, and B-picture to compress the information amount. The I-picture is a picture on which the inter prediction coding is not performed, that is, prediction coding within a picture (hereinafter referred to as “intra prediction”) is performed. The P-picture is a picture on which the inter prediction coding is performed with reference to one coded picture preceding or following the current picture in display time order. The B-picture is a picture on which the inter prediction coding is performed with reference to two coded pictures preceding or following the current picture in display time order.
The inter prediction coding generates a reference picture list for identifying a reference picture. The reference picture list is a list in which reference picture indexes are allocated to coded reference pictures to be referenced in the inter prediction. For example, since the B-picture is coded with reference to two pictures, two reference picture lists are held. Then, the reference pictures are identified by the reference picture indexes from the reference picture lists.
FIG. 13A illustrates an example of reference pictures. FIGS. 13B and 13C show an example of reference picture lists for the B-pictures. A reference picture list 1 (hereinafter referred to as “reference picture list L0”) in FIG. 13B is an example of a reference picture list for a prediction direction 1 in the bi-directional prediction. Here, a reference picture index 1 indicated by 0 is allocated to a reference picture 1 in the display order 2. Furthermore, a reference picture index 1 indicated by 1 is allocated to a reference picture 2 in the display order 1. Furthermore, a reference picture index 1 indicated by 2 is allocated to a reference picture 3 in the display order 0. In other words, the reference picture indexes are allocated to the current pictures to be coded from the earliest display time order.
A reference picture list 2 (hereinafter referred to as “reference list L1”) is an example of a reference picture list for a prediction direction 2 in the bi-directional prediction. Here, a reference picture index 2 indicated by 0 is allocated to the reference picture 2 in the display order 1. Furthermore, a reference picture index 2 indicated by 1 is allocated to the reference picture 1 in the display order 2. Furthermore, a reference picture index 2 indicated by 2 is allocated to the reference picture 3 in the display order 0. As such, different reference picture indexes can be allocated to each of the reference pictures, according to a prediction direction (reference pictures 1 and 2 in FIG. 13A), and the same reference picture index can be allocated to a reference picture (reference picture 3 in FIG. 13A). When a B-picture is coded, the inter prediction is performed using (i) a motion vector (mvL0) for referencing a reference picture identified by the reference list L0 and the reference picture index 1 and (ii) a motion vector (mvL1) for referencing a reference picture identified by the reference list L1 and the reference picture index 2. In coding a P-picture, one reference list is used.
Furthermore, in the H.264 moving picture coding scheme, a coding mode referred to as a temporal direct mode can be selected when a motion vector is derived in coding the B-picture. The inter prediction coding method in the temporal direct mode will be described with reference to FIG. 14. FIG. 14 illustrates motion vectors in the temporal direct mode, and a case where a block “a” of a picture B2 is coded in the temporal direct mode. Here, a motion vector “a” is used. The motion vector “a” is used in coding a block “b” that is co-located with the block “a” and is within a picture P3 that is a reference picture behind the picture B2. Furthermore, when the block “b” is coded, the motion vector “a” is used and references a picture P1. The block “a” obtains a reference block from the picture P1 that is a forward reference picture and the picture P3 that is a backward reference picture, using a motion vector parallel to the motion vector “a”, and is coded in the bi-directional prediction. In other words, the motion vector used in coding the block “a” is the motion vector “b” for the picture P1, and is the motion vector “c” for the picture P3.